//package com.ruoyi.project.zxshop.web.controller.common;
//
//import com.ruoyi.common.constant.Constants;
//import com.ruoyi.common.utils.VerifyCodeUtils;
//import com.ruoyi.common.utils.sign.Base64;
//import com.ruoyi.common.utils.uuid.IdUtils;
//import com.ruoyi.framework.redis.RedisCache;
//import com.ruoyi.framework.web.domain.AjaxResult;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.web.bind.annotation.GetMapping;
//import org.springframework.web.bind.annotation.RestController;
//
//import javax.servlet.http.HttpServletResponse;
//import java.io.ByteArrayOutputStream;
//import java.io.IOException;
//import java.util.concurrent.TimeUnit;
//
///**
// * 验证码操作处理
// *
// * @author ruoyi
// */
//@RestController
//public class CaptchaController {
//    @Autowired
//    private RedisCache redisCache;
//
//    /**
//     * 生成验证码
//     */
//    @GetMapping("/captchaImage")
//    public AjaxResult getCode(HttpServletResponse response) throws IOException {
//        // 生成随机字串
//        String verifyCode = VerifyCodeUtils.generateVerifyCode(4);
//        // 唯一标识
//        String uuid = IdUtils.simpleUUID();
//        String verifyKey = Constants.CAPTCHA_CODE_KEY + uuid;
//
//        redisCache.setCacheObject(verifyKey, verifyCode, Constants.CAPTCHA_EXPIRATION, TimeUnit.MINUTES);
//        // 生成图片
//        int w = 111, h = 36;
//        ByteArrayOutputStream stream = new ByteArrayOutputStream();
//        VerifyCodeUtils.outputImage(w, h, stream, verifyCode);
//        try {
//            AjaxResult ajax = AjaxResult.success();
//            ajax.put("uuid", uuid);
//            ajax.put("img", Base64.encode(stream.toByteArray()));
//            return ajax;
//        } catch (Exception e) {
//            e.printStackTrace();
//            return AjaxResult.error(e.getMessage());
//        } finally {
//            stream.close();
//        }
//    }
//}
